package org.terramagnet.workflow.dynamic.definition;

import com.fasterxml.jackson.databind.JsonNode;
import java.util.List;
import java.util.Map;

/**
 * 工作流程定义.
 *
 * @author terrason
 */
public final class WorkflowDef {

    /**
     * 流程名称.
     */
    private String name;
    /**
     * 流程说明.
     */
    private String description;
    /**
     * 流程输入配置. 这些输入参数位于"_"命名空间下。
     */
    private Map<String, JsonNode> input;
    /**
     * 所有工作任务.
     */
    private List<WorkDef> works;
    /**
     * 流程输出配置.
     */
    private Map<String, JsonNode> output;

    /**
     * 流程名称.
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * 流程名称.
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 流程说明.
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * 流程说明.
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * 流程输入配置. 这些输入参数位于"_"命名空间下。
     * @return the input
     */
    public Map<String, JsonNode> getInput() {
        return input;
    }

    /**
     * 流程输入配置. 这些输入参数位于"_"命名空间下。
     * @param input the input to set
     */
    public void setInput(Map<String, JsonNode> input) {
        this.input = input;
    }

    /**
     * 所有工作任务.
     * @return the works
     */
    public List<WorkDef> getWorks() {
        return works;
    }

    /**
     * 所有工作任务.
     * @param works the works to set
     */
    public void setWorks(List<WorkDef> works) {
        this.works = works;
    }

    /**
     * 流程输出配置.
     * @return the output
     */
    public Map<String, JsonNode> getOutput() {
        return output;
    }

    /**
     * 流程输出配置.
     * @param output the output to set
     */
    public void setOutput(Map<String, JsonNode> output) {
        this.output = output;
    }

}
